<?
	/* Se asegura que el archivo es incluido por el index */
		defined( 'LOAD_MODULE_ACTION' ) or die( 'No esta permitido el acceso directo a ' . __FILE__ );
	/* Cuando se hace el include del archivo automaticamente crea un objeto y lo guarda en una variable temporal */
		$this->oTmpObject = new Objetivo_frm( $this );

	class Objetivo_frm extends Frm
	{
	function Objetivo_frm( &$oModule )
		{
			$this->Frm( $oModule );
			//Crea los Objetos de los campos de edicion
			$this->aFields['ncObjetivo']				= new Input( "Codigo", "ncObjetivo", '', false, true );
			$this->aFields['ncProyecto']				= new InputList( "Proyecto", "ncProyecto" );
			$this->aFields['cdObjetivo']				= new InputText( "Objetivo", "cdObjetivo" );
			$this->aFields['cDescripcion']			= new InputText( "Descripcion", "cDescripcion" );
			$this->aFields['ncResponsable']		= new InputLookup( "Responsable", "ncResponsable" );
			$this->aFields['dVencimiento']			= new InputDate( "Vencimiento", "dVencimiento" );
		}

	function setValue( $ncProyecto, $ncObjetivo )
		{
			$cSql = "SELECT cdObjetivo, ncResponsable, dVencimiento, cDescripcion
								FROM atObjetivo as Obj
								WHERE Obj.ncProyecto = $ncProyecto AND  Obj.ncObjetivo = $ncObjetivo";
			$aRow = $this->oDatabase->getArray($cSql);
			$this->setFieldsArray ( $aRow );
			return $aRow;
		}
	function setLevel( $nLevel)
		{
			switch ( $nLevel )
			{
				case 1:
					$this->aInput = array( 'ncObjetivo', 'cdObjetivo' );
					break;
				case 2: // Alta Simple
					$this->aInput = array( 'ncObjetivo', 'ncProyecto', 'cdObjetivo' , 'dVencimiento', 'ncResponsable' , 'cDescripcion');
					break;
			}
		}
	function initializeForm()
		{
			// Si Recibe la Pk => busca los datos
				if ( $this->isRetrievable() && $this->aFields['ncProyecto']->getValue() && $this->aFields['ncObjetivo']->getValue() )
				{
					$aRow = $this->setValue( $this->aFields['ncProyecto']->getValue() , $this->aFields['ncObjetivo']->getValue() );
				}
			// Configura el Titulo
				$this->setLabel ( "Objetivo");
			return true;
		}
	function initializeField( $cField , &$oField )
		{
			switch ( $cField )
			{
				case 'ncProyecto':
					if ( $oField->getValue() )
					{
						$oField->setHidden();
					} else
					{
						$oField->setMatrix( $this->oDatabase->getMatrix("SELECT ncProyecto, cdProyecto FROM atProyecto") );
						$oField->setMandatory( $this->isMandatory() );
					}
				break;
				case 'cdObjetivo':
					$oField->setMandatory( $this->isMandatory() );
					$oField->setLength( 100 );
				break;
				case 'cDescripcion':
					$oField->setEditor();
				break;
				case 'ncResponsable':
					$oField->setMandatory( $this->isMandatory() );
					if ( $this->aFields['ncProyecto']->getValue()  ) $ncResponsable= $this->oDatabase->getData("SELECT ncResponsable FROM atProyecto WHERE ncProyecto = " . $this->aFields['ncProyecto']->getValue() );
					$oField->setDefault( $ncResponsable );
					$oField->setForm( $this );
					$oField->setFieldActions( 'ncPersona');
					initializePersona( $oField );
				break;
			}
		}
	}
?>